設計工程

コンピュータシステムは、一つひとつのプログラムが相互補完的に組み合わさり、要求された機能を実現させています。しかし、だからといっていきなりプログラムを作成することはできません。システムに要求されている機能は多岐にわたりますが、個々の処理としては同じロジックを再利用するというケースもたくさんあります。

例えば、流通業のシステムでは消費税計算は売上だけでなく請求や仕入、支払でも同じロジックが使われます。売上プログラムだけでなく請求プログラム、仕入プログラム、支払プログラムの全てに同じロジックを書くのは無駄な労力と考えられます。
また、プログラムは作成した後でテストを実施し品質を確認する必要がありますが、プログラム数が多くなると同様なテスト内容になるにもかかわらず、それぞれにテストを実施しなければなりませんので、作業量が増加してしまうことになります。
そして、消費税計算に改修が必要となった時には、それぞれのプログラムを同じように変更しなければなりませんし、テストも行なわなければなりません。
しかし、消費税計算部分を共通処理として独立させておくと、プログラム作成を一つに集約でき、生産性の向上が図れるだけでなく、品質の向上も期待できます。

このように、システムに要求されている機能を実現するために、どのようにプログラムを組み立てていくべきかを検討する作業が、システム設計です。

システム設計は段階的詳細化といって、要件定義・基本設計・詳細設計・プログラム設計という手順で具体化されていきます。

要件定義

要件定義というのは、システムに求められている機能のうち、コンピュータシステムで実現できる部分を切り分けする工程です。
プログラムは明確な条件分岐により結果を出力するものですので、条件分岐が定義できるものである必要があります。
また、複雑度の高い条件の場合は、反応速度の低下を招きますし、製作コストも高くなり、完成までの時間も長くなる可能性が高くなります。
システムに投下できる資本と得られる成果を比較検討し、コンピュータ化する機能を見定めなければなりません。
システムを要求する側と提供する側で、システムで実現する機能の範囲を明確に定義する作業が要件定義で、要件定義書を成果物として作成します。

基本設計

要件定義で確認したシステムで実現する機能を、どのように具体化していくのかを決定する工程が基本設計です。
基本設計は外部設計とも称し、ユーザインターフェース部分を設計する作業になります。
システムに要求された機能の表現方法として、どのような画面や帳票が必要となるか、その画面や帳票に出力するデータ項目は何か、という情報を確認していきます。
システム範囲が広範囲にわたり、機能内容が独立している場合には、サブシステムに分割しておきます。サブシステムごとの機能と構成、および、インターフェースを定義します。
また、システム横断的に共通で処理すべき情報を抽出し、共通ルール(共通仕様)として定義しておきます。
実現するシステムへの移行やその後の運用について方針を確定しておくのも、基本設計工程の作業のひとつです。
基本設計では、基本設計(仕様)書、システム移行計画書、システム運用設計書などを成果物として作成します。

詳細設計

詳細設計は内部設計とも称し、システムに求められる機能を実現するためのシステム構成(アーキテクト)を決定し、作成すべきプログラムを定義します。
また、システムが使用するデータ項目を決定し、データベースの構造設計をします。
詳細設計では、基本設計で定義したサブシステム単位に設計内容を整理した詳細設計(仕様)書が成果物となります。
設計作業の次の工程はプログラム設計となりますが、プログラムの設計及び開発における基本的な仕様や共通ルールなどは、詳細設計段階で定義しておきます。
システム全般にわたる詳細設計は、詳細設計(仕様)書共通編という形で文書化しておきます。
詳細設計によるシステム構成の具体化に伴い、基本設計が見直されるケースもあります。
・基本設計で定義した共通仕様に基づき、同じ処理(ロジック)や同じ情報(データ)が重複することがないように詳細化しますが、、新たに共通化すべき仕様が見つかったり、共通仕様の組み換えが必要となることがあります。
・データ設計も詳細化により、項目の分割や追加が必要となることがあります。
基本設計を改訂する際には、他の設計内容に障害が発生しないことを十分検証しなければなりません。

プログラム設計

プログラム実装レベルの仕様を作成する作業がプログラム設計となります。
詳細設計までの開発言語に左右されない仕様記述を行ないますが、プログラム設計では採用したプログラム言語に基づき、どのように実装するかをプログラム設計(仕様)書として作成します。
プログラム設計はプログラム単位に行なわれますが、先行して開発言語に応じたプログラムの構造や共通ルールを定義しておかなければなりません。
プログラムをモジュール分割する場合には、モジュールの定義と構成、インターフェース情報が必要となります。
そこでプログラム設計(仕様)書は、プログラム単位に記述するものとプログラム共通部分とを分けて、それぞれ作成します。

 ブログランキング・にほんブログ村へ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする